The present disclosure relates generally to virtual systems, and more particularly, to virtual processor management.
A virtual machine is a piece of software that, when executed on appropriate hardware, creates an environment allowing the virtualization of an actual physical computer system. Each virtual machine running on the physical system may function as a self-contained platform, running its own operating system (OS) and software applications (processes) on one or more virtual processors.
A host machine (e.g., computer or server) is typically enabled to simultaneously run one or more virtual machines, where each virtual machine may be used by a local or remote client. The host machine allocates a certain amount of execution time from the host's physical processors to each of the virtual processors. Each virtual machine may use the allocated resources to execute applications, including operating systems known as guest operating systems.
A host machine generally uses a scheduler to schedule tasks to be executed on the processors of the host machine. Such tasks can be on behalf of host machine, including Input/Output threads that process communication between the host machine and the virtual machine, or such tasks can include execution of the virtual processors for the virtual machines being hosted by the host machine. The scheduler will typically allocate periods of time to each of the virtual processors. But, sometimes a virtual processor of one of the virtual machines to which time is allotted is in a halt state. The virtual processor may be in a halt state until it receives an interrupt signal. The interrupt signal may indicate completion of an Input/Output thread. Thus, the performance of the virtual machine is reduced, as that time that could have been allotted to the virtual machine is dedicated to other tasks. Overall, the efficiency of the host is reduced.